$.jstree._themes = "js/jstree/themes/";

$(document).ready(function(){
	$("#edit_menu_left").jstree({
		"themes" : {
			"theme" : "classic",
			"dots" : true,
			"icons" : true
		},

		"dnd": {
			"drop_finish" : function (data) {
				if(data.r.attr('id') == "edit_menu_right"){
					moveNode("#edit_menu_left", "#edit_menu_right_", data.o[0]);
					$("#edit_menu_right_").jstree("sort", $("#edit_menu_right_"));
				} else if(data.r.attr('id') == "edit_menu_cart"){
					if(confirm('Вы действительно желаете удалить эту страницу и всё вложенные в нее страницы?')){
						moveNode("#edit_menu_left", "#edit_menu_cart_", data.o[0]);
						$("#edit_menu_cart_").jstree("sort", $("#edit_menu_cart_"));
					}
				}
			}
		},

		"plugins" : [ "themes", "html_data", "dnd", "types", "crrm"]
	});

	$("#edit_menu_right_").jstree({
		"themes" : {
			"theme" : "classic",
			"dots" : false,
			"icons" : true
		},

		"types": {
			"max_depth" : 1
		},

		"dnd": {
			"drop_finish" : function (data) {
				if(data.r.attr('id') == "edit_menu_left"){
					moveNode("#edit_menu_right_", "#edit_menu_left", data.o[0]);
				} else if(data.r.attr('id') == "edit_menu_cart"){
					if(confirm('Вы действительно желаете удалить эту страницу?')){
						moveNode("#edit_menu_right_", "#edit_menu_cart_", data.o[0]);
						$("#edit_menu_cart_").jstree("sort", $("#edit_menu_cart_"));
					}
				}
			}
		},

		"crrm":{
			"always_copy": "multitree"
		},

		"plugins" : [ "themes", "html_data", "dnd", "types", "crrm", "sort"]
	});

	$("#edit_menu_cart_").jstree({
		"themes" : {
			"theme" : "classic",
			"dots" : false,
			"icons" : true
		},

		"types": {
			"max_depth" : 1
		},

		"dnd": {
			"drop_finish" : function (data) {
				if(data.r.attr('id') == "edit_menu_left"){
					moveNode("#edit_menu_cart_", "#edit_menu_left", data.o[0]);
				} else if(data.r.attr('id') == "edit_menu_right_" || data.r.attr('id') == "edit_menu_right"){
					moveNode("#edit_menu_cart_", "#edit_menu_right_", data.o[0]);
					$("#edit_menu_right_").jstree("sort", $("#edit_menu_right_"));
				}
			}
		},

		"crrm":{
			"always_copy": "multitree"
		},

		"plugins" : [ "themes", "html_data", "dnd", "types", "crrm", "sort"]
	});

	$('#save_menu').click(function(){
		if(!$('#menu_title').val()) {
			alert("Заголовок не может быть пустым");
			return false;
		}
		
		var button = $(this), data = new Array(), deleteData = new Array(), d;

		$('#edit_menu_left li').each(function(){
			parent = $(this).parents('li');
			level = $(this).parents('ul').length;
			d = {
				'page_id': $(this).attr('rev'),
				'parent': (parent.length ? parent.attr('rev') : 0),
				'position': $(this).parent('ul').children('li').index(this),
				'level': level
			};
			data.push(d);
		});

		$('#edit_menu_cart_ li').each(function(){
			deleteData.push($(this).attr('rev'));
		});
		
		$.ajax({
			'url': "/admin.php?module=pages&action=menu_save",
			'type': 'POST',
			'data': {
				'id': $('#menu_id').val(),
				'title': $('#menu_title').val(),
				'data': $.toJSON(data),
				'deleteData': $.toJSON(deleteData)
			},
			beforeSend: function(){
				button.addClass('load');
			},
			success: function(data){
				if(data != $('#menu_id').val()) $('#menu_id').attr('value', data);
				button.removeClass('load');
			}
		});
	});
});

function moveNode(from_tree, to_tree, node){
	var children = $(node).find("li");

	children.each(function(n){
		$(to_tree).jstree("create_node", $(to_tree), "last", {
			"attr" : {
				"rev": $(this).attr('rev'),
				"title" : $(this).attr('title')
			},
			"data":{
				"title" : $(this).attr('title'),
				"attr":{
					"href" : $(this).children('a').attr('href')
				}
			}
		});
	});

	$(to_tree).jstree("create_node", $(to_tree), "last", {
		"attr" : {
			"rev": $(node).attr('rev'),
			"title" : $(node).attr('title')
		},
		"data":{
			"title" : $(node).attr('title'),
			"attr":{
				"href" : $(node).children('a').attr('href')
			}
		}
	});
	
	$(from_tree).jstree("delete_node", node);
}